package com.ning.parking.domain;


import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.scsonic.common.enums.parking.PaySceneEnum;
import com.scsonic.common.enums.trade.PayStatusEnum;
import com.scsonic.common.enums.trade.PayTerminalEnum;
import com.scsonic.common.enums.trade.TradePlatformEnum;
import lombok.Data;

/**
 * 支付订单表
 * @TableName parking_pay_order
 */
@TableName(value ="parking_pay_order")
@Data
public class ParkingPayOrder implements Serializable {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 车场id
     */
    private Long parkingLotId;

    /**
     * 车场名称
     */
    private String parkingLotName;

    /**
     * 主车场id
     */
    private Long parentParkingLotId;

    /**
     * 主车场名称
     */
    private String parentParkingLotName;

    /**
     * 停车记录id
     */
    private Long recordId;

    /**
     * 支付订单号
     */
    private String payOrderNo;

    /**
     * 第三方交易订单号
     */
    private String thirdPayOrderNo;

    /**
     * 交易人openid
     */
    private String tradeOpenId;

    /**
     * 交易人手机号码
     */
    private String tradePhone;

    /**
     * 交易人union_id
     */
    private String tradeUnionId;

    /**
     * 停车金额（元）
     */
    private BigDecimal amount;

    /**
     * 折扣金额（元）
     */
    private BigDecimal discountAmount;

    /**
     * 平台优惠金额（元）
     */
    private BigDecimal platformDiscountAmount;

    /**
     * 应付金额（元）
     */
    private BigDecimal payableAmount;

    /**
     * 支付金额（元）
     */
    private BigDecimal payAmount;

    /**
     * 支付状态（0：无需支付，1：待支付，2：已支付，3：支付失败，6：已追缴）
     */
    private PayStatusEnum payStatus;

    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 支付场景：1-通道支付, 2-无感支付,3-场内支付,4-自助缴费机,5-小程序支付,6-岗亭收费
     */
    private PaySceneEnum payScene;

    /**
     * 支付渠道：1-微信,2-支付宝,3-商户抵扣,4-现金,5-银行卡
     */
    private TradePlatformEnum payChannel;

    /**
     * 支付终端
     */
    private PayTerminalEnum payTerminal;

    /**
     * 收款人姓名
     */
    private String payeeName;

    /**
     * 收款人员工号
     */
    private String payeeEmployeeNo;

    /**
     * 收款人id
     */
    private Long payeeId;


    /**
     * 备注
     */
    private String remark;


    public void setParkingLot(ParkingRecord record) {
        this.parkingLotId = record.getParkingLotId();
        this.parkingLotName = record.getParkingLotName();
        this.parentParkingLotId = record.getParentParkingLotId();
        this.parentParkingLotName = record.getParentParkingLotName();
        this.recordId = record.getRecordId();
        this.setAmount(record.getPayableAmount());
        this.setDiscountAmount(record.getDiscountAmount());
        this.setParentParkingLotId(record.getParentParkingLotId());
        this.setParkingLotId(record.getParkingLotId());
        this.setPayChannel(record.getPayChannel());
        this.setPayScene(record.getPayScene());
    }

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 删除标记
     */
    private Byte delFlag;

}